gui/macOS: Properly retain/release NSFileProviderManager(s)
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 27 Mar 2025 12:07:37 +0000 (13:07 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Thu, 27 Mar 2025 14:16:05 +0000 (14:16 +0000)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/macOS/fileprovidereditlocallyjob_mac.mm
src/gui/macOS/fileprovideritemmetadata_mac.mm

index ec5ffcc755b0fdc17acbf4cad93e1382a932bf20..483fc08ece05f18de6b1f05b8e418ddec9324fe7 100644 (file)
@@ -55,6 +55,7 @@ void FileProviderEditLocallyJob::openFileProviderFile(const QString &ocId)
         emit notAvailable();
     }
 
+    [manager retain];
     [manager getUserVisibleURLForItemIdentifier:nsOcId
                               completionHandler:^(NSURL *const url, NSError *const error) {
 
@@ -81,6 +82,7 @@ void FileProviderEditLocallyJob::openFileProviderFile(const QString &ocId)
                 emit notAvailable();
             });
         }
+        [manager release];
     }];
 }
 
index 9a4e00c89be40369c1529d61e5df12bb003e8d4b..8b79a60bd34328d204dd4d533f4bcbbf1a108db3 100644 (file)
@@ -132,6 +132,7 @@ QString FileProviderItemMetadata::getUserVisiblePath() const
 
     // getUserVisibleUrl is async, so wait here
 
+    [manager retain];
     [manager getUserVisibleURLForItemIdentifier:nsItemIdentifier
                               completionHandler:^(NSURL *const userVisibleFile, NSError *const error) {
 
@@ -141,6 +142,7 @@ QString FileProviderItemMetadata::getUserVisiblePath() const
             returnPath = QString::fromNSString(userVisibleFile.path);
         }
 
+        [manager release];
         dispatch_semaphore_signal(semaphore);
     }];